perm filename RDINC[1,LCS] blob
sn#305762 filedate 1977-09-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 EXTERNAL FUNCTION GETINF(ARRAY J,INSR,INBT,INCH,INMX,INDR),
C00009 ENDMK
C⊗;
EXTERNAL FUNCTION GETINF(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMPL(ARRAY N,BITS),GETIN2(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP2(ARRAY N,BITS),GETIN3(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP3(ARRAY N,BITS),GETIN4(ARRAY J,INSR,INBT,INCH,INMX,INDR),
RDSMP4(ARRAY N,BITS);
ARRAY INF, IN2, IN3, IN4(1536);
VARIABLE /CNT,/RD,/SCNT,INCH,INSR,INMX,INDR,INBT,INBUF,
/CNT2,/RD2,/SCNT2,INCH2,INSR2,INMX2,INDR2,INBT2,INBUF2,
/CNT3,/RD3,/SCNT3,INCH3,INSR3,INMX3,INDR3,INBT3,INBUF3,
/CNT4,/RD4,/SCNT4,INCH4,INSR4,INMX4,INDR4,INBT4,INBUF4,
/INC,/INC2,/INC3,/INC4,IX;
FUNCTION PRNTIT(CNT,INSR,INBT,INCH,INMX,INDR,INBUF);
BEGIN
INBUF←1535-512*INBT; IX←INDR/INSR/INCH;
PRINT "SRATE=",INSR," BITS=",12+INBT*6," NCHNS=",INCH,
" MAXAMP=",INMX," DUR=",IX;
CNT←INBUF;
END;
FUNCTION READIN(RD);
BEGIN <DON'T FORGET TO INIT AND SCNT ← 0;
IF SCNT=0 THEN BEGIN
GETINF(INF,INSR,INBT,INCH,INMX,INDR); <HEADER IS READ INTO ARRAY INF.
PRNTIT(CNT,INSR,INBT,INCH,INMX,INDR,INBUF);
END;
SCNT←SCNT+INC;
IF SCNT > INDR THEN BEGIN <CHECK TO SEE IF SMPL CNT IS EXCEEDED
RD←0; RETURN(RD); END;
IF CNT > INBUF THEN BEGIN
RDSMPL(INF,INBT);
CNT←0; END;
RD←INF(CNT);
IF CNT ~ INT(CNT) THEN BEGIN
IX ← CNT+1;
IF IX > INBUF THEN EXIT;
RD←RD+(INF(IX)-RD)*(CNT-INT(CNT));
END;
CNT←CNT+INC; <UPDATE THE COUNTER
RETURN(RD); END;
FUNCTION READI2(RD2);
BEGIN <DON'T FORGET TO INIT AND SCNT ← 0;
IF SCNT2=0 THEN BEGIN
GETIN2(IN2,INSR2,INBT2,INCH2,INMX2,INDR2); <HEADER IS READ INTO ARRAY INF.
PRNTIT(CNT2,INSR2,INBT2,INCH2,INMX2,INDR2,INBUF2);
END;
SCNT2←SCNT2+INC2;
IF SCNT2 > INDR2 THEN BEGIN <CHECK TO SEE IF SMPL CNT IS EXCEEDED
RD2←0; RETURN(RD2); END;
IF CNT2 > INBUF2 THEN BEGIN
RDSMP2(IN2,INBT2);
CNT2←0; END;
RD2←IN2(CNT2);
IF CNT2 ~ INT(CNT2) THEN BEGIN
IX ← CNT2+1;
IF IX > INBUF2 THEN EXIT;
RD2←RD2+(IN2(IX)-RD2)*(CNT2-INT(CNT2));
END;
CNT2←CNT2+INC2; <UPDATE THE COUNTER
RETURN(RD2); END;
FUNCTION READI3(RD3);
BEGIN <DON'T FORGET TO INIT AND SCNT ← 0;
IF SCNT3=0 THEN BEGIN
GETIN3(IN3,INSR3,INBT3,INCH3,INMX3,INDR3); <HEADER IS READ INTO ARRAY INF.
PRNTIT(CNT3,INSR3,INBT3,INCH3,INMX3,INDR3,INBUF3);
END;
SCNT3←SCNT3+INC3;
IF SCNT3 > INDR3 THEN BEGIN <CHECK TO SEE IF SMPL CNT3 IS EXCEEDED
RD3←0; RETURN(RD3); END;
IF CNT3 > INBUF3 THEN BEGIN
RDSMP3(IN3,INBT3);
CNT3←0; END;
RD3←IN3(CNT3);
IF CNT3 ~ INT(CNT3) THEN BEGIN
IX ← CNT3+1;
IF IX > INBUF3 THEN EXIT;
RD3←RD3+(IN3(IX)-RD3)*(CNT3-INT(CNT3));
END;
CNT3←CNT3+INC3; <UPDATE THE COUNTER
RETURN(RD3); END;
FUNCTION READI4(RD4);
BEGIN <DON'T FORGET TO INIT AND SCNT4 ← 0;
IF SCNT4=0 THEN BEGIN
GETIN4(IN4,INSR4,INBT4,INCH4,INMX4,INDR4); <HEADER IS READ INTO ARRAY INF.
PRNTIT(CNT4,INSR4,INBT4,INCH4,INMX4,INDR4,INBUF4);
END;
SCNT4←SCNT4+INC4;
IF SCNT4 > INDR4 THEN BEGIN <CHECK TO SEE IF SMPL CNT4 IS EXCEEDED
RD4←0; RETURN(RD4); END;
IF CNT4 > INBUF4 THEN BEGIN
RDSMP4(IN4,INBT4);
CNT4←0; END;
RD4←IN4(CNT4);
IF CNT4 ~ INT(CNT4) THEN BEGIN
IX ← CNT4+1;
IF IX > INBUF4 THEN EXIT;
RD4←RD4+(IN4(IX)-RD4)*(CNT4-INT(CNT4));
END;
CNT4←CNT4+INC4; <UPDATE THE COUNTER
RETURN(RD4); END;
<********************************************************************
SETMAG;1 10
INSTRUMENT READA;
OUTA←OUTA+P4*READIN(RD);
END;
INSTRUMENT READB;
OUTA←OUTA+P4*READI2(RD2);
END;
INSTRUMENT READC;
OUTA←OUTA+P4*READI3(RD3);
END;
INSTRUMENT READD;
OUTA←OUTA+P4*READI4(RD4);
END;